package com.lggry.lambda;

public class LambdaDemo1 {
    public static void main(String[] args) {
        //目标：认识Lambda表达式,搞清楚其基本作用。
        Animal animal = new Animal() {
            @Override
            public void cry() {
                System.out.println("喵喵喵~");
            }
        };
        animal.cry();

        //Lambda 并不是可以简化全部的匿名内部类，Lambda只能简化函数式接口的匿名内部类。
//        Animal animal1 = () -> System.out.println("喵喵喵~");

        //Lambda表达式，简化了函数式接口的匿名内部类
        Swim swim = () -> System.out.println("狗刨~");
    }
}

abstract class Animal {
    public abstract void cry();
}

//函数式接口，只有一个抽象方法的接口
@FunctionalInterface    //声明函数式接口的注解
interface Swim{
    void swimming();
}